import axios from "axios";
import qs from "qs";
import router from "../router";
import { Message } from 'element-ui';
// import store from "../store/store";
export const Axios = axios.create({
  baseURL: process.env.VUE_APP_BASE_URL,
  timeout: 10000
});


//POST传参序列化(添加请求拦截器)
// 在发送请求之前做某件事
Axios.interceptors.request.use(
  config => {
    // if (store.state.token) {
    //   config.headers["token"] = store.state.token;
    // }
    config.headers['msgId'] = new Date().getTime();
    config.headers['accessToken'] = localStorage.accessToken;
    // 设置以 form 表单的形式提交参数，如果以 JSON 的形式提交表单，可忽略
    if (config.method === "post" && config.data) {
      // FormData数据不处理，json数据序列化
      //  设置接口用JSON方式提交，
      if (config.data.dataType == "json") {
        // 删除标识字段
        delete config.data.dataType;
      } else if (typeof config.data.getAll != "function") {
        config.data = qs.stringify(config.data);
      }
    }
    console.log('config',config)
    return config;
  },
  error => {

    return Promise.reject(error);
  }
);
//返回状态判断(添加响应拦截器
var goLogin = false; //是否跳转登录页
Axios.interceptors.response.use(
    res =>{
        if (res.data.retCode == '20102') {
          if(goLogin){
            console.log('is jump');
          } else{
            goLogin = true;
            localStorage.removeItem('accessToken');
            Message.warning('登录过期，请重新登录!');
            setTimeout(() => {
              router.push({
                name: 'Login'
              })
            }, 200);
          }
        }
        return res.data;
        },
    error => {

        return Promise.reject(error)
    }
);

export default Axios;
